Theo dõi Chuỗi_truy_vấn

Một chương trình nhận được một query string có thể bỏ qua một phần hoặc tất cả. Nếu các URL yêu cầu tương ứng với một tập tin và không phải là một chương trình, cả query string sẽ bị bỏ qua. Tuy nhiên, dù các query string có được sử dụng hay không, toàn bộ URL có query string đều được lưu trữ trong các log files của server.

Việc lưu lại này cho phép theo dõi người dùng, tương tự như cách cung cấp HTTP cookies. Để làm việc này, mỗi khi người dùng tải một trang, một địa chỉ duy nhất phải được chọn và thêm vào tất cả URL của trang như một query string. Ngay sau khi các người dùng dử dụng các đường dẫn này, những URL tương ứng được sẽ được gởi yêu cầu tới server. Với cách này, việc tải một trang sẽ liên kết với trang trước đó.

Ví dụ, khi một trang web có đoạn chương trình HTML sau được yêu cầu:

 <a href="foo.html">Wikipedia</a> <a href="bar.html">Query String</a>

một chuỗi duy nhất, như e0a72cb2a2c7 được chọn, và đoạn mã HTML sẽ bị thay đổi như sau:

 <a href="foo.html?e0a72cb2a2c7">Wikipedia</a> <a href="bar.html?e0a72cb2a2c7">Query String</a>

VIệc thêm vào query string không thay đổi cách mà trang web hiển thị với người dùng. Ví dụ, khi người dùng truy cập vào liên kết đầu tiên trong trang HTML ở trên, trình duyệt yêu cầu trang foo.html?e0a72cb2a2c7 tới server, và server sẽ bỏ qua những gì sau dấu ? và trả về cho browser trang foo.html như mong đợi, và thêm vào các query string đến liên kết của nó.

Sự khác biệt giữa query string dùng cho việc theo dõi người dùng với HTTP cookies là:

  1. Query string là một phần của URL, và do đó nếu người dùng copy cả URL và gởi cho người dùng khác thì người dùng khác sẽ nhận được URL gồm query string; cookie có thể được lưu trên trình duyệt, nhưng không được lưu hoặc gửi kèm theo URL.
  2. Nếu người dùng truy cập vào cùng một web server bởi 2 đường dẫn riêng biệt (hoặc nhiều hơn), thì server sẽ trả về 2 query string khác nhau, trong khi các cookie lưu trữ đều giống nhau.
  3. Người dùng có thể vô hiệu hóa cookie, trong trường hợp đó, cookies sẽ không thể dùng để theo dõi người dùng được. Tuy nhiên, query string có thể sử dụng để theo dõi người dùng trong mọi tình huống.

Tài liệu tham khảo

WikiPedia: Chuỗi_truy_vấn http://docs.oracle.com/javaee/6/api/javax/servlet/... http://tools.ietf.org/html/rfc3986#section-3 http://tools.ietf.org/html/rfc3986#section-3.4 http://www.w3.org/TR/1999/REC-html401-19991224/app... http://www.w3.org/TR/REC-html40/interact/forms.htm... http://www.w3.org/wiki/HTML/Elements/isindex //en.wikipedia.org/wiki/Category:CS1_maint:_Multip... https://stackoverflow.com/questions/1746507/author... https://httpd.apache.org/docs/2.2/mod/core.html#li... https://tools.ietf.org/html/rfc7230#section-3.1.1